.TH datetime 3
.SH NAME
datetime \- convert between TAI labels and seconds
.SH SYNTAX
.B #include <datetime.h>

void \fBdatetime_tai\fP(&\fIdt\fR,\fIt\fR);

datetime_sec \fBdatetime_untai\fP(&\fIdt\fR);

struct datetime \fIdt\fR;
.br
datetime_sec \fIt\fR;
.SH DESCRIPTION
International Atomic Time, TAI,
is the fundamental unit for time measurements.
TAI has one label for every second of real time,
without complications such as leap seconds.

A
struct datetime
variable,
such as
.IR dt ,
stores a TAI label.
.I dt\fB.year
is the year number minus 1900;
.I dt\fB.mon
is the month number, from 0 (January) through 11 (December);
.I dt\fB.mday
is the day of the month, from 1 through 31;
.I dt\fB.hour
is the hour, from 0 through 23;
.I dt\fB.min
is the minute, from 0 through 59;
.I dt\fB.sec
is the second, from 0 through 59;
.I dt\fB.wday
is the day of the week, from 0 (Sunday) through 6 (Saturday);
.I dt\fB.yday
is the day of the year, from 0 through 365.

The
.B datetime
library supports more convenient TAI manipulation with
the datetime_sec type.
A datetime_sec value, such as
.IR t ,
is an integer referring to the
.IR t th
second after the beginning of 1970 TAI.
The first second of 1970 TAI was 0;
the next second was 1;
the last second of 1969 TAI was -1.
The difference between two datetime_sec values is a number
of real-time seconds.

.B datetime_tai
converts a datetime_sec to a TAI label.

.B datetime_untai
reads a TAI label
(specifically
.IR dt\fB.year ,
.IR dt\fB.mon ,
.IR dt\fB.mday ,
.IR dt\fB.hour ,
.IR dt\fB.min ,
and
.IR dt\fB.sec )
and returns a datetime_sec.
.SH "SEE ALSO"
now(3)
